// 发送Ajax请求
import config from './apl-config'
// 服务端通信工具类(发送Ajax请求并接收返回结果)
//-------------------------------------------------------
// 参数：url，已相对路径得形式指定目标Url(必填项)
// 参数：data，Request请求数据(必填项)
// 参数：method，HTTP请求方法(选填项，默认为GET)
// 参数：tokenSendFlg，请求是否携带Token到服务器(选填项，默认为true，)
//-------------------------------------------------------
// 返回值：调用WepApi得Promise对象
export default (url, data = {}, method = 'GET', tokenSendFlg = true) => {
  return new Promise((resolve, reject) => {
    // new Promise初始化promise实例的状态为pending
    //弹出加载图示（processbar.show("获取数据中")）
    console.log('APIURL' ,config.requestDNS + url);
    wx.request({
      url: config.requestDNS + url,
      timeout:40000,
      data,
      method,
      header: {
        Authorization: !tokenSendFlg ? '' : wx.getStorageSync('shtoken') ? wx.getStorageSync('shtoken') : '',
        'X-Access-Token':!tokenSendFlg ? '' : wx.getStorageSync('shtoken') ? wx.getStorageSync('shtoken') : '',
        // 'X-Access-Token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NDc1OTg1OTIsInVzZXJuYW1lIjoiYWRtaW4ifQ.maQeZQdWZLgssSzTj3q5jCxEbf6d6MbZu539LhUBme8',
        'X-Session-Id':!tokenSendFlg ? '' : wx.getStorageSync('shsession') ? wx.getStorageSync('shsession') : '',
        // Authorization:  'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1Ni',
        'content-type': method.toUpperCase()==='GET' || method.toUpperCase()==='DELETE'? 'application/x-www-form-urlencoded':'application/json'
      },
      success: (res) => {
        resolve(res); // resolve修改promise的状态为成功状态resolved
        console.log('【web-api-util】:Call webApi successed.', res)
      },
      fail: (error) => {
        reject(error);
        console.error('【web-api-util】:Call webApi failed.', error);
        //弹出提醒，告诉客户，当前服务不可用 
        dialog.show("当前服务不可用，请稍后尝试。")
      },
      complete: (res) => {
        //什么都不需要做
      }
    })
  })
}